package vista.ventanaTarea;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import modelo.Proyecto;


/**
 * @author Natalia Stefania
 */

public class AgregarTareaAbstract extends JFrame{

	private static final long serialVersionUID = 1L;
	
	// Variables  *********************************************************** //
	protected JLabel nombre, importancia, estimacion, tipoTarea, finalizacionEstimada
					, elPredecesor, tareasQueComponen; 

	protected JTextField nameTextField, importance, estimacionAprox, finEstimada;
	protected JComboBox tipo, predecesor, tareaCompuesta; 
	protected JButton cancelar, agregar;
	protected Proyecto proyectoSistema;

	protected JPanel panel;
	
	// Constructor  ******************************************************** //
	public AgregarTareaAbstract(Proyecto proyecto)  {
		
		this.init(); 
		this.agregarComponentes(); 
		this.getContentPane().setLayout(new GridLayout(1,1));
		this.panel.setLayout(new GridLayout(8,2));
		this.pack(); 
		this.setVisible(true); 
		this.proyectoSistema = proyecto; 
		
	}
	
	// Metodos  *********************************************************** //
	private void init() {
		panel = new JPanel();
		nombre = new JLabel ("     Nombre");
		nameTextField = new JTextField (15);
		
		importancia = new JLabel ("     Importancia");
		importance = new JTextField ();
		
		finalizacionEstimada = new JLabel ("     Finalizacion Estimada");
		finEstimada = new JTextField ();
		
		estimacion = new JLabel ("     Estimacion");
		estimacionAprox = new JTextField ();
		
		tipoTarea = new JLabel ("     Tipo");
		tipo = new JComboBox();
		
		elPredecesor = new JLabel ("     Predecesor");
		predecesor = new JComboBox (); 
		
		tareasQueComponen = new JLabel ("Tareas que componen"); 
		tareaCompuesta = new JComboBox (); 
		tareaCompuesta.setVisible(false);
		tareasQueComponen.setVisible(false);
		
		tipo.addItem("Simple"); 
		tipo.addItem ("Compuesta");
		
		cancelar = new JButton("Cancelar"); 
		agregar = new JButton ("Agregar");
	}
	
	public void agregarComponentes (){
		this.add(panel);
		this.panel.add(nombre);
		this.panel.add(nameTextField);
		
		this.panel.add(importancia);
		this.panel.add(importance);
		
		this.panel.add(finalizacionEstimada);
		this.panel.add(finEstimada);
		
		this.panel.add(estimacion);
		this.panel.add(estimacionAprox);
		
		this.panel.add(tipoTarea); 
		this.panel.add(tipo);
		
		this.panel.add(elPredecesor);
		this.panel.add(predecesor); 
		
		this.panel.add(tareasQueComponen);
		this.panel.add(tareaCompuesta); 
		
		this.panel.add(agregar);
		this.panel.add(cancelar);

		cancelar.addActionListener(new BotonCancelarListener());
	}
	
	/**
	 * Cierra la ventana actual
	 */
	public class BotonCancelarListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			AgregarTareaAbstract.this.dispose();
		}
	}
	
	
	//GET&SET     *********************************************************** //

	
	public void setAgregar(JButton agregar) {
		this.agregar = agregar;
	}
	
	public JLabel getTareasQueComponen() {
		return tareasQueComponen;
	}
	
	public void setTareasQueComponen(JLabel tareasQueComponen) {
		this.tareasQueComponen = tareasQueComponen;
	}
	
	public JComboBox getListaTareas() {
		return tareaCompuesta;
	}

	public JComboBox getTipo() {
		return tipo;
	}

	public JComboBox getPredecesor() {
		return predecesor;
	}

	public Proyecto getProyectoSistema() {
		return proyectoSistema;
	}
	
	public void setProyectoSistema(Proyecto proyectoSistema) {
		this.proyectoSistema = proyectoSistema;
	}

	public JTextField getImportance() {
		return importance;
	}

	public void setImportance(JTextField importance) {
		this.importance = importance;
	}

	public JTextField getEstimacionAprox() {
		return estimacionAprox;
	}

	public void setEstimacionAprox(JTextField estimacionAprox) {
		this.estimacionAprox = estimacionAprox;
	}

	public JTextField getFinEstimada() {
		return finEstimada;
	}

	public void setFinEstimada(JTextField finEstimada) {
		this.finEstimada = finEstimada;
	}
	
	public JTextField getNameTextField() {
		return nameTextField;
	}

	public void setNameTextField(JTextField nameTextField) {
		this.nameTextField = nameTextField;
	}
	
}
